/*
 * Copyright 2007 National Bioinformatics Network
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package dgbgui.gui.widgets.layouts;

import dgbgui.gui.widgets.Widget;
import edu.umd.cs.piccolo.PNode;
import edu.umd.cs.piccolo.util.PBounds;

public abstract class Layout extends Widget {
    
    public Layout(PNode parent, double margin, double spacing) {
        super(parent);
        m_margin = margin;
        m_spacing = spacing;
    }
    
    public abstract void layoutChildren();
    
    public PBounds computeFullBounds(PBounds dstBounds) {
        PBounds result = getUnionOfChildrenBounds(dstBounds);
        result.setRect(0,0,result.getWidth() + 2*m_margin,result.getHeight() + 2*m_margin);
        localToParent(result);
        dstBounds.setRect(result);
        return result;      
    }
    
    protected double m_margin, m_spacing; 

}
